package com.aspose.cells;

class zalo {
   int a;
   double[] b;
   int c;
   boolean d;

   public zalo(int var1, boolean var2) {
      this.a = var1;
      this.d = var2;
      this.b = new double[var1];
   }

   public double a(int var1) {
      return this.b[var1];
   }

   public void a(double var1) {
      if (this.c == 0) {
         this.b[this.c++] = var1;
      } else {
         int var3;
         int var4;
         int var5;
         if (this.d) {
            if (this.a == 1) {
               if (this.b[0] < var1) {
                  this.b[0] = var1;
               }

               return;
            }

            if (this.b[0] <= var1) {
               this.a(0, var1);
               return;
            }

            if (this.b[this.c - 1] >= var1) {
               if (this.c != this.a) {
                  this.b[this.c++] = var1;
               }

               return;
            }

            if (this.c == 2) {
               this.a(1, var1);
               return;
            }

            var3 = 1;
            var4 = this.c - 2;
            var5 = 0;

            while(var3 <= var4) {
               var5 = (var3 + var4) / 2;
               if (this.b[var5] == var1) {
                  this.a(var5, var1);
                  return;
               }

               if (this.b[var5] > var1) {
                  var3 = var5 + 1;
               } else {
                  var4 = var5 - 1;
               }
            }

            if (this.b[var5] > var1) {
               ++var5;
            }

            this.a(var5, var1);
         } else {
            if (this.a == 1) {
               if (this.b[0] > var1) {
                  this.b[0] = var1;
               }

               return;
            }

            if (this.b[0] >= var1) {
               this.a(0, var1);
               return;
            }

            if (this.b[this.c - 1] <= var1) {
               if (this.c != this.a) {
                  this.b[this.c++] = var1;
               }

               return;
            }

            if (this.c == 2) {
               this.a(1, var1);
               return;
            }

            var3 = 1;
            var4 = this.c - 2;
            var5 = 0;

            while(var3 <= var4) {
               var5 = (var3 + var4) / 2;
               if (this.b[var5] == var1) {
                  this.a(var5, var1);
                  return;
               }

               if (this.b[var5] > var1) {
                  var4 = var5 - 1;
               } else {
                  var3 = var5 + 1;
               }
            }

            if (this.b[var5] < var1) {
               ++var5;
            }

            this.a(var5, var1);
         }

      }
   }

   private void a(int var1, double var2) {
      if (this.c == this.a) {
         System.arraycopy(this.b, var1, this.b, var1 + 1, this.c - var1 - 1);
      } else {
         System.arraycopy(this.b, var1, this.b, var1 + 1, this.c - var1);
         ++this.c;
      }

      this.b[var1] = var2;
   }
}
